var ns, UIAlbumBrowser, bmLocation,toast,db;
app = new Vue({
    el: '#app',
    data: {
        list: [],
        form: {
            ID:0,
            pageindex: 0,
            pagesize: 10,
            planTypeList:4,
            TaskStatus: 1//0-未开始,1-进行中,2-已结束
            // status: 1 //1-任务列表 2-新增记录
        },
        complatePercent: '',
        PlanType: 3,
        total: {
            ProcessCount: 0,
        },
        current_item_length: 0,
        scroll_top: 0,
        can_scroll: false,
        showTop:false,
        showsearch:false,
        number:0,
        selectlist:[],
        choosetaskmodel:{},
        optionName:'',
        choosesortmodel:{},
        option2: [],
        option3: [
            // { text: '排序', value: 0 },
            { text: '时间近到远', value: 1 },
            { text: '时间远到近', value: 2 },
        ],
        //在线、离线模式
        lineStatus:0,//0 在线  1离线
        offList:[],
    },
    methods: {
        get_data: function () {
            var that = this;
            that.can_scroll = false;
            var options = {};
            options.action = "getdeviceplantasklist";
            options.pagesize = that.form.pagesize;
            options.pageindex = that.form.pageindex;
            options.Type = that.form.planTypeList;
            options.Status = that.form.TaskStatus;
            options.OrderByType = that.OrderByType;
            // console.log(JSON.stringify(options));
            ns.post(options, function (succeed, data, err) {
                // console.log(JSON.stringify(data));
                if (succeed) {
                    if (data.listHandle.length == that.form.pagesize) {
                        that.can_scroll = true;
                    }
                    if (that.form.pageindex == 0) {
                        that.selectlist = data.listHandle;
                    } else {
                        that.selectlist = that.selectlist.concat(data.listHandle);
                    }
                    app.current_item_length = that.selectlist.length
                    // that.total.ProcessCount = data.ProcessCount;
                    // that.number=data.number;
                    // for(var i=0;i<data.list.length;i++){
                    //     data.list[i].JpushAddTime=ns.SetTime_style(data.list[i].JpushAddTime);
                    // }
                } else if (err) {
                    that.current_item_length = 0;
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
                api.sendEvent({
                    name:'isreadPatrol'
                })

            }, {
                toast: true
            });
        },
        //获取筛选条件
        get_menuType:function(){
            var that=this;
            var options = {};
            options.action = 'getdeviceplantasksearchparams';
            options.Type=4;
            ns.post(options, function (succeed, data, err) {
                // console.log(JSON.stringify(data));
                if(succeed){
                    if(data.status){
                        that.option2=data.list;
                        that.choosetaskmodel=data.list[1];
                        that.optionName=that.choosetaskmodel.Name+'('+that.choosetaskmodel.Number+')';
                        that.choosesortmodel=that.option3[0];
                    }
                }else{
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            })
        },
        //翻页第一条数据的位置
        do_scrollbtn:function(id){
            　　　　 var sollid = document.getElementById('scroll'+id);
            　　　　 window.scrollTo(0,sollid.offsetTop); 
            　　},
        select_status: function (status) {
            var that = this;
            that.showTop=false;
            that.form.TaskStatus = status;
            that.form.pageindex = 0;
            that.list = [];
            that.get_data();
            // if (status == 1) {
            //     setTimeout(function() {
            //         ns.init_pull();
            //     }, 500)
            // }
        },
        onChooseTask:function(item){
            var that = this;
            that.choosetaskmodel=item;
            that.optionName=that.choosetaskmodel.Name+'('+that.choosetaskmodel.Number+')';
            this.$refs.choosetask.toggle();
            that.form.TaskStatus=item.Type;
            that.get_data();
        },
        onChooseSort:function(item){
            var that = this;
            that.choosesortmodel=item;
            this.$refs.choosesort.toggle();
            that.OrderByType=item.value;
            that.get_data();
        },
        open_list: function (item) {
            var that = this;
            // var url = 'patrolplan_list_frm';
            var url='patrolplan_list_frm_new';
            var title = item.DevicePlanName;
            // if (item.TaskStatus == 1) {
            //     url = 'patrolplan_summary_frm';
            //     title = '任务详情';
            // }
            ns.openWin(url, title, {
                id: item.ID
            });
        },
        open_add: function () {
            var that = this;
            ns.openWin('patrolplan_addfrm', '新增记录');
        },
        open_select:function(){
            var that=this;
            that.showTop=!that.showTop;
        },
        doHideSearch:function(){
            var that=this;
            that.showTop=false;
            that.showsearch=false;
        },
        select_allstatus:function(){
            var that=this;
            that.showsearch=!that.showsearch;
            var options={};
            options.planTypeList = JSON.stringify(that.form.planTypeList);
            options.action = "getdeviceplantaskpendinghandlelist";
            ns.post(options, function (succeed, data, err) {
                if(succeed){
                    that.selectlist=data.list;
                    
                }else{
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }

            });
        },
        //搜索结果返回位置
        do_scrollTo: function () {

            var that = this;
            var sollid = document.getElementById('scroll' + that.form.ID);
            window.scrollTo(0, sollid.offsetTop);
            var classlist = document.getElementById('scroll' + that.form.ID).getElementsByClassName('boxbg')[0];
            classlist.style.backgroundColor = "#eaf1ff";
            setTimeout(function () {
                classlist.style.backgroundColor = "#f7fbff";
            }, 800)
        },
        //在线-离线模式切换
        open_change_line: function () {
            let that=this;
            //获取当前网络状态
            api.getNetworkType({
                success: function(res) {
                    if(res.networkType!="none"){
                        //有网  当离线切换在线时  任务存在需要判断是否上传任务  上传成功后需要清空任务
                        //有网  当在线切换离线时  覆盖并创建任务
                        let message= that.lineStatus==0?'离线':'在线';
                        api.confirm({
                            title: '提示',
                            msg: '是否切换'+message+'模式?',
                            buttons: ['确定', '取消']
                        }, function(ret, err) {
                            if (ret.buttonIndex == 1) {
                                that.lineStatus=1;
                                that.get_data_off();
                                api.setPrefs({
                                    key: 'lineStatus',
                                    value: 1
                                });
                            }
                            if (ret.buttonIndex == 2) {
                                that.lineStatus=0;
                                that.get_data();  
                                api.setPrefs({
                                    key: 'lineStatus',
                                    value: 0
                                }); 
                            }     
                        });
                    }else{
                        api.toast({
                            msg: '请联网，只能在有网的情况下进行模式切换！',
                            duration: 2000,
                            location: 'bottom'
                        });
                        return;
                    }   
                }
            });
        },
        //离线模式
        get_data_off: function () {
            //创建 任务表、巡更点打卡表、附件表
            var that = this;
            var options = {};
            options.action = "getofftasklist";
            options.Type = that.form.planTypeList;
            // console.log(JSON.stringify(options));
            ns.post(options, function (succeed, data, err) {
                // console.log(JSON.stringify(data));
                if (succeed) {
                    that.offList = data.listHandle;
                    if(that.offList.length>0){
                       let res=that.set_create_off();
                       if (res) {
                            api.addEventListener({
                                name: 'viewdisappear'
                            }, function (ret, err) {
                                api.closeWin();
                            });
                            ns.openWin('renwulist_offlist', "安防巡更待办(离线模式)");
                        }
                    }
                    else{
                        api.toast({
                            msg: "暂无待办需要处理的数据，未创建离线任务",
                            duration: 2000,
                            location: 'bottom'
                        });
                        that.lineStatus = 0;
                        that.get_data();
                        api.setPrefs({
                            key: 'lineStatus',
                            value: 0
                        }); 
                    }
                } else if (err) {
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            }, {
                toast: true
            });
        },
        set_create_off: function () {
            var that = this;     
            that.offList.forEach((item, index) => {
                //先执行删除-再执行插入-保持最新数据
                let delfilesql=`DELETE FROM Sys_File WHERE PlanTaskID=${item.ID}`;
                let deltasksql=`DELETE FROM Sys_PlanTask WHERE PlanTaskID=${item.ID}`;
                let delplansql=`DELETE FROM Sys_Plan WHERE ID=${item.ID}`;        
                db.executeSql({
                    name: 'prodemotest',
                    sql: delfilesql,
                }, function (ret, err) {
                });
                db.executeSql({
                    name: 'prodemotest',
                    sql: deltasksql,
                }, function (ret, err) {

                });
                db.executeSql({
                    name: 'prodemotest',
                    sql: delplansql,
                }, function (ret, err) {
                });
                var nowdate=moment().format('YYYY-MM-DD HH:mm:ss');
                //插入Sys_Plan 表数据
                let plansql = `INSERT INTO Sys_Plan (ID,DevicePlanName,ProjectID,ProjectName,PlanType,PlanTypeDesc,TaskStatus,TaskResultDesc,OutTimeStatusDesc,TaskStatusDesc,StartTime,EndTime,CheckStartTime,CheckEndTime,TaskChargeManName,WorkOrderType,PatrolLineName,count,completeCount,normalCount,abnormalCount,IsUpload,UploadTime,IsAllowCard,IsMiss,WithLine) VALUES (${item.ID},'${item.DevicePlanName}',${item.ProjectID},'${item.ProjectName}',${item.PlanType},'${item.PlanTypeDesc}',${item.TaskStatus},'${item.TaskResultDesc}','${item.OutTimeStatusDesc}','${item.TaskStatusDesc}','${item.StartTime}','${item.EndTime}','${item.CheckStartTime}','${item.CheckEndTime}','${item.TaskChargeManName}',${item.WorkOrderType},'${item.PatrolLineName}',${item.count},${item.completeCount},${item.normalCount},${item.abnormalCount},0,'${nowdate}','${item.IsAllowCard}','${item.IsMiss}',${item.WithLine});`;
                db.executeSql({
                    name: 'prodemotest',
                    sql: plansql,
                }, function (ret, err) { 
                });
                if (item.TaskList != undefined && item.TaskList.length > 0) {
                    item.TaskList.forEach((itemtask, indextask) => {
                        //插入Sys_PlanTask 表数据
                        let CheckStatusDesc=itemtask.IsInvalidComplete? 2 : 1;
                        let tasksql = `INSERT INTO Sys_PlanTask (EncriptID,ID,ProjectName,PatrolNumber,PatrolID,PatrolName,RequireScan, CanProcessDirect,IsAllowUpload,IsAllowGPS,TaskStatus,TaskResultDesc,IsInvalidComplete,StartTime,GPSLocation,CanPunchCard,IsAllowCard,IsSupplementCard,IsMiss,TaskChargeManID,TaskChargeManName,TaskChargeManHeaderImg,IsAbnormal,IsReport,GongdanType,GongdanTypeDesc,GongdanID,PlanTaskID,CheckStatus,TaskCompleteContent,TaskCompleteTime,Longitude,Latitude,APPUpload) VALUES ('${itemtask.EncriptID}',${itemtask.ID},'${itemtask.ProjectName}','${itemtask.PatrolNumber}',${itemtask.PatrolID},'${itemtask.PatrolName}','${itemtask.RequireScan}','${itemtask.CanProcessDirect}','${itemtask.IsAllowUpload}','${itemtask.IsAllowGPS}',${itemtask.TaskStatus},'${itemtask.TaskResultDesc}','${itemtask.IsInvalidComplete}','${itemtask.StartTime}','${itemtask.GPSLocation}','${itemtask.CanPunchCard}','${itemtask.IsAllowCard}','${itemtask.IsSupplementCard}','${itemtask.IsMiss}',${itemtask.TaskChargeManID},'${itemtask.TaskChargeManName}','${itemtask.TaskChargeManHeaderImg}','${itemtask.IsAbnormal}','${itemtask.IsReport}',${itemtask.GongdanType},'${itemtask.GongdanTypeDesc}',${itemtask.GongdanID},${item.ID},${CheckStatusDesc},'${itemtask.TaskCompleteContent}','${itemtask.TaskCompleteTime}','','',0);`;
                        db.executeSql({
                            name: 'prodemotest',
                            sql: tasksql,
                        }, function (ret, err) {
                        });

                        if (itemtask.imgList != undefined && itemtask.imgList.length > 0) {
                            itemtask.imgList.forEach((itemimg, indeximg) => {
                                //插入Sys_File 表数据
                                let filesql = `INSERT INTO Sys_File (ID,TaskID,FilePath,PlanTaskID) VALUES (${itemimg.FileId},${itemimg.PatrolTaskID},'${itemimg.FilePath}',${item.ID});`;
                                db.executeSql({
                                    name: 'prodemotest',
                                    sql: filesql,
                                }, function (ret, err) {
                                });
                            });
                        }
                    });
                }
            });
            return true;
        },
        do_create_tabel: function () {
            var that = this;
            // 修改了表字段 先执行删除表 再添加表
             db.executeSql({
                name: 'prodemotest',
                sql: 'DROP TABLE Sys_PlanTask'
            }, function (ret, err) {
                // console.log('DROP-Sys_PlanTask')
                // console.log(JSON.stringify(ret))
                // console.log(JSON.stringify(err))
            });

            //创建离线任务相关表
            //计划任务表
            db.executeSql({
                name: 'prodemotest',
                sql: 'CREATE TABLE Sys_Plan(ID int, DevicePlanName varchar(100),ProjectID int,ProjectName varchar(100),PlanType int, PlanTypeDesc varchar(50),TaskStatus int,TaskResultDesc varchar(50),OutTimeStatusDesc varchar(50),TaskStatusDesc varchar(50),StartTime DateTime,EndTime DateTime,CheckStartTime DateTime,CheckEndTime DateTime,TaskChargeManName varchar(100),WorkOrderType int,PatrolLineName varchar(255),count int,completeCount int,normalCount int,abnormalCount int,IsUpload int,UploadTime DateTime,IsAllowCard Boolean,IsMiss Boolean,WithLine int);'
            }, function (ret, err) {
            });
            //巡更任务表
            db.executeSql({
                name: 'prodemotest',
                sql: 'CREATE TABLE Sys_PlanTask(EncriptID varchar(50),ID int,ProjectName varchar(100),PatrolNumber varchar(50),PatrolID int, PatrolName varchar(255), RequireScan Boolean, CanProcessDirect Boolean,IsAllowUpload Boolean,IsAllowGPS Boolean,TaskStatus int,TaskResultDesc varchar(50),IsInvalidComplete Boolean,StartTime DateTime,GPSLocation varchar(255),CanPunchCard Boolean,IsAllowCard Boolean,IsSupplementCard Boolean,IsMiss Boolean,TaskChargeManID int,TaskChargeManName varchar(100),TaskChargeManHeaderImg varchar(2000),IsAbnormal Boolean,IsReport Boolean,GongdanType int,GongdanTypeDesc varchar(50),GongdanID int,PlanTaskID int,CheckStatus int,TaskCompleteContent ntext,TaskCompleteTime varchar(50),Longitude varchar(200),Latitude varchar(200),APPUpload int);'
            }, function (ret, err) {
            });
            //任务附件表
            db.executeSql({
                name: 'prodemotest',
                sql: 'CREATE TABLE Sys_File(ID int,TaskID int, FilePath varchar(2000),PlanTaskID int);'
            }, function (ret, err) {
            });
        },
    }
});
apiready = function () {
    api.parseTapmode();
    ns = window.Foresight.Util;
    db = api.require('db');
    
    //创建prodemotest数据库
    db.openDatabase({
        name: 'prodemotest'
    }, function(ret, err) {
        if (!ret.status) {
            api.toast({
                msg: err,
                duration: 2000,
                location: 'bottom'
            });
        } 
        else{
            app.do_create_tabel();
        }
    });

    toast = new auiToast();
    app.get_menuType();
    app.form.status = api.pageParam.status || 1;
    app.form.ID = api.pageParam.ID || 0;
    setTimeout(function () {
        app.form.status = 1;
        app.get_data();
        setTimeout(function () {
            ns.init_pull();
        }, 500)
    }, 500)
    api.addEventListener({
        name: 'devicetaskcomplete'
    }, function (ret, err) {
        app.get_data();
    });
    api.addEventListener({
        name: 'do_open_add'
    }, function (ret, err) {
        app.open_add();
    });
    api.addEventListener({
        name: 'startplantaskdone'
    }, function (ret, err) {
        app.get_data();
    });
    api.addEventListener({
        name: 'do_open_select'
    }, function (ret, err) {
        app.open_select();
    });
    // 监听当前window页面显示
    api.addEventListener({
        name:'viewappear'
    }, function(ret, err){        
       // 允许屏幕休眠
       api.setKeepScreenOn({
        keepOn: false
    });
    });
    //在线-离线模式切换
    api.addEventListener({
        name: 'do_change_line'
    }, function (ret, err) {
        app.open_change_line();
    });

    
};
